前面 Hello World 過了, 然後會寫 function 了, 接下來介紹一下 package 的引入 (雖然順序有點奇妙, 不過筆者自己學新語言是這個順序在學xD )
main.go
package main
import (
"fmt"
)
func adder(a int, b int) int {
return a + b
}
func sayHello(){
fmt.Println("hello world")
}
func main(){
// sayHello()
fmt.Println( adder(3, 5) )
}
新增一個檔案 calculate.go (可以使用touch指令, 或vscode左邊界面滑鼠直接新增)
calculate.go
package main
func Sub(a int, b int) int {
return a - b
}
說明:
修改 main.go
package main
import (
"fmt"
)
func adder(a int, b int) int {
return a + b
}
func sayHello(){
fmt.Println("hello world")
}
func main(){
// sayHello()
fmt.Println( adder(3, 5) )
fmt.Println( Sub(10, 6))
}
新增資料夾 pkg
mkdir pkg # mkdir 是 make directory 的意思, 是一個作業系統提供的指令, pkg可以自己更改, 但pkg是package的意思, 通常命名最好讓別人直接看得懂
將calculate移動到pkg資料夾內 (不熟指令的話也可以先手動)
mv calculate.go pkg # mv 是系統提供的指令, move的意思
此時的資料夾結構會像是
helloworld
- main.go
- pkg
- calculate.go
接下來修改 calculate.go內模組名稱
calculage.go
package pkg
func Sub(a int, b int) int {
return a - b
}
說明:這邊模組 package pkg, pkg可以自訂, 個人是習慣跟資料夾一樣, 這邊沒有強制規定
接著修改 main.go: 因為此時 calculate.go 的位置已經改變, 不在main.go的同一層, 所以需要使用模組系統路徑讓編譯器知道位置
package main
import (
"fmt"
"helloworld/pkg" // helloworld 是 mod.go 裡面的專案名稱, 後面pkg就是資料夾路徑
)
func adder(a int, b int) int {
return a + b
}
func sayHello(){
fmt.Println("hello world")
}
func main(){
// sayHello()
fmt.Println( adder(3, 5) )
fmt.Println( pkg.Sub(10, 6)) // 這邊就需要使用 pkg這個物件去呼叫Sub函式(至於什麼是物件後面詳述)
}
執行
go run .
之後的預期結果是會看到 4, 如果學習過程有困難歡迎DC找我(yale918#9832)幫debug